added old spec and implementation for didatic purposes