moved execution logic to main