major refactoring
lower rf