i still do not like this method. let's change the requirements to get rid of this method.