Completed constructor, need testing