building logic