Create, update working but need to be optimized.