oooogh... a lot of changes)