Co-channel deployed small cell networks must overcome the effect of inter-cell interference. In this work, we formulate a joint rate and power optimization problem by considering both the utility functions for user equipments (UE) and the cost functions for base-stations (BS). For a class of UE utility and BS cost functions (including proportionally fair utility function and nearly any convex cost functions), we show the conversion of the problem into convex optimization. Instead of finding a direct solution, we propose a Frank-Wolfe (FW) based framework to tackle different utility functions in a unified way. The algorithm consists of a controller collecting information from both UEs and BS's for a series of iterative optimization steps. We further simplify the optimization procedure at the controller by using a fixed-point based updating algorithm. Furthermore, we also introduce a trading scheme to properly reimburse small cells for off-loading data and to provide simple access control to reduce the number of interfering links.