refactor QFramer