beware of None objs
refactoring