added camera manipulation