full fledged feature implemented. Waiting to test