Organized into modules
Changed some options handling
Complete build