removed inheritance and updated tests