simplified api and added achiev unachiev functionality