Fixed a comment
Moved some logic to abstract class