added camera and some restriction
ugly merge