Rebuilding how positioning code; Adding extraMargin option; adding set option public method