initial camera implementation (unfinished)