To use reusable and extendible classes

Only whole window capture works for now.