improved element abstraction, updated pom