Added Apache License
Reworked factories
Initial Widget implementation
Refactored to use Spock tests