Minor updates
Major enhancements and refactorings
Add support for defaults and implement features