begining custom framework