this was implemented in a different way