Added some builder functionality and unit tests