fixed abstract stuff