updated with Camera API