Design for Reuse via Structuring Techniques for ASMs