major update: add admm and code re-organizaion