Refactor a bit + create program if doesn't exist
closes #23