big progress on abstraction