broken work in progress. half the features work