Finished Porting to Module Pattern