Initial Implementation and Partial Tests