Make Camera abstract