Cleanup
added more generic constructors