Opa Application Framework for JavaScript