Refactor: moved from controller over to directive
Product Selection: Refactor and tests added for directive