some implemented, lots of bugs