yes I will refactor!