programming with non_oop