splits logic into separate fx's