Fully functioning, needs validations, additional javadoc, and receipt "clean up"