behaviour changing algorithm