added oop and sample