diff --git a/options.go b/options.go
index ac077048..8efa3134 100644
--- a/options.go
+++ b/options.go
@@ -22,8 +22,7 @@ type Options struct {
 	Registry  registry.Registry
 	Transport transport.Transport
 
-	// Registration options
-	RegisterTTL      time.Duration
+	// Register loop interval
 	RegisterInterval time.Duration
 
 	// Before and After funcs
@@ -125,7 +124,7 @@ func Action(a func(*cli.Context)) Option {
 
 func RegisterTTL(t time.Duration) Option {
 	return func(o *Options) {
-		o.RegisterTTL = t
+		o.Server.Init(server.RegisterTTL(t))
 	}
 }
 
diff --git a/registry/options.go b/registry/options.go
index 27a8ced9..04e3525b 100644
--- a/registry/options.go
+++ b/registry/options.go
@@ -44,7 +44,7 @@ func TLSConfig(t *tls.Config) Option {
 	}
 }
 
-func WithTTL(t time.Duration) RegisterOption {
+func RegisterTTL(t time.Duration) RegisterOption {
 	return func(o *RegisterOptions) {
 		o.TTL = t
 	}
diff --git a/server/options.go b/server/options.go
index 80f75c63..edaeceea 100644
--- a/server/options.go
+++ b/server/options.go
@@ -26,6 +26,8 @@ type Options struct {
 	HdlrWrappers []HandlerWrapper
 	SubWrappers  []SubscriberWrapper
 
+	RegisterTTL time.Duration
+
 	// Debug Handler which can be set by a user
 	DebugHandler debug.DebugHandler
 
@@ -34,10 +36,6 @@ type Options struct {
 	Context context.Context
 }
 
-type RegisterOptions struct {
-	TTL time.Duration
-}
-
 func newOptions(opt ...Option) Options {
 	opts := Options{
 		Codecs:   make(map[string]codec.NewCodec),
@@ -160,6 +158,13 @@ func Metadata(md map[string]string) Option {
 	}
 }
 
+// Register the service with a TTL
+func RegisterTTL(t time.Duration) Option {
+	return func(o *Options) {
+		o.RegisterTTL = t
+	}
+}
+
 // Adds a handler Wrapper to a list of options passed into the server
 func WrapHandler(w HandlerWrapper) Option {
 	return func(o *Options) {
@@ -173,10 +178,3 @@ func WrapSubscriber(w SubscriberWrapper) Option {
 		o.SubWrappers = append(o.SubWrappers, w)
 	}
 }
-
-// Register the service with a TTL
-func RegisterTTL(t time.Duration) RegisterOption {
-	return func(o *RegisterOptions) {
-		o.TTL = t
-	}
-}
diff --git a/server/rpc_server.go b/server/rpc_server.go
index 8e58f156..97f1f921 100644
--- a/server/rpc_server.go
+++ b/server/rpc_server.go
@@ -155,15 +155,7 @@ func (s *rpcServer) Subscribe(sb Subscriber) error {
 	return nil
 }
 
-func (s *rpcServer) Register(opts ...RegisterOption) error {
-	var options RegisterOptions
-	for _, o := range opts {
-		o(&options)
-	}
-
-	// create registry options
-	rOpts := []registry.RegisterOption{registry.WithTTL(options.TTL)}
-
+func (s *rpcServer) Register() error {
 	// parse address for host, port
 	config := s.Options()
 	var advt, host string
@@ -228,6 +220,9 @@ func (s *rpcServer) Register(opts ...RegisterOption) error {
 	}
 
 	log.Infof("Registering node: %s", node.Id)
+	// create registry options
+	rOpts := []registry.RegisterOption{registry.RegisterTTL(config.RegisterTTL)}
+
 	if err := config.Registry.Register(service, rOpts...); err != nil {
 		return err
 	}
diff --git a/server/server.go b/server/server.go
index 5afcf7e5..c74e392b 100644
--- a/server/server.go
+++ b/server/server.go
@@ -45,7 +45,7 @@ type Server interface {
 	NewHandler(interface{}, ...HandlerOption) Handler
 	NewSubscriber(string, interface{}, ...SubscriberOption) Subscriber
 	Subscribe(Subscriber) error
-	Register(...RegisterOption) error
+	Register() error
 	Deregister() error
 	Start() error
 	Stop() error
@@ -86,8 +86,6 @@ type HandlerOption func(*HandlerOptions)
 
 type SubscriberOption func(*SubscriberOptions)
 
-type RegisterOption func(*RegisterOptions)
-
 var (
 	DefaultAddress        = ":0"
 	DefaultName           = "go-server"
diff --git a/service.go b/service.go
index a05c1e09..f50fb254 100644
--- a/service.go
+++ b/service.go
@@ -41,8 +41,7 @@ func (s *service) run(exit chan bool) {
 	for {
 		select {
 		case <-t.C:
-			if err := s.opts.Server.Register(server.RegisterTTL(s.opts.RegisterTTL)); err != nil {
-			}
+			s.opts.Server.Register()
 		case <-exit:
 			t.Stop()
 			return
@@ -102,7 +101,7 @@ func (s *service) Start() error {
 		return err
 	}
 
-	if err := s.opts.Server.Register(server.RegisterTTL(s.opts.RegisterTTL)); err != nil {
+	if err := s.opts.Server.Register(); err != nil {
 		return err
 	}