added all code

could be final commin