Camera implementation. Work in progress