add waste full functionality and tests