added CLI support and conventional directory structure