reorganize code and add scenario package