make it extendable