added some comments and make some placeholders for functions