sooo many comments, and fixed inheritance issue