refactor and add bill controller