implementing buddy roser and others