basic capture logic, not fully functional