updated Status to be interface and have abstract classes to implement
basic features