Updated position from interface to abstract class so we can do equality checks.