some more implementation ideas