reworking remove method yet agian
remove from scratch