This would probably require a lot of changes. 