adding something like interfaces