First version, many modifications to do yet this build works