Added BodyProperties to allow for semantic analysis
Refactored Code to have more accurate package names
Added comments and documentation.