implementing more stuff