Some of implementation section; done for now