We should be able to utilize the timeout functionality in `gen_server` and get rid of the internal Erlang timer completely. See http://www.erlang.org/doc/man/gen_server.html#call-3