initial implementation with screenshot