this is a better solution