Separate logic