adds interface builder support
Modernized, cleaned up, added some simple tests