closes #143 (added three packages + refactor), test clean