everything implemented, not quite working